
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Promise的基本使用</title>
</head>
<body>
  
</body>

<script type="text/javascript">
  
  // Promise：相当于一个容器，保存着未来才会结束的事件（异步操作）的一个结果
  // 各种异步操作都可以用同样的方法进行异步处理

  // 特点：
  // 1、对象的状态不受外界影响，处理异步操作三个状态：Pending（进行中）、Resolved（成功）、Rejectid（失败）
  // 2、一旦状态改变，就不会再变，任何时候都可以得到这个结果

  let pro = new Promise(function(resolved, rejected) {
    // 执行异步操作
    let res = {
      code: 404,
      data: {
        name: 'chenjunyu'
      },
      error: '请求失败了'
    }

    setTimeout(() => {
      if (res.code === 200) {
        resolved(res.data)
      } else {
        rejected(res.error)
      }
    }, 1000);
  })
  console.log(pro);
  // then方法接收一个回调函数
  pro.then((val) => {
    console.log(val);
  }, (err) => {
    console.log(err);
  }) 

</script>
</html>